unit dVendas;

interface
uses
classes,
dConexao,
dObjects;

type

Tvendas_prod=class;

Tvendas=class(TdObjects)
private
fdatahorasaida : tdatetime;
fdtemissao : tdatetime;
fdtentrega : tdatetime;
fidempresa : integer;
fidlocalentrega : integer;
fidpagamento : integer;
fidpedido : integer;
fidplanilha : integer;
fidusuario : integer;
fidvendedor : integer;
fnumnota : integer;
foutrasdespesas : double;
fpercomissao : double;
fserie : string;
ftipofrete : integer;
fvalfrete : double;
fvaltotbruto : double;
fvaltotdesconto : double;
fvaltotliquido : double;
FItens: Tvendas_prod;
public
constructor create;
destructor destroy; override;
procedure clear;
 property Itens : Tvendas_prod read FItens;
published
 property datahorasaida : tdatetime read fdatahorasaida write fdatahorasaida;
 property dtemissao : tdatetime read fdtemissao write fdtemissao;
 property dtentrega : tdatetime read fdtentrega write fdtentrega;
 property idempresa : integer read fidempresa write fidempresa;
 property idlocalentrega : integer read fidlocalentrega write fidlocalentrega;
 property idpagamento : integer read fidpagamento write fidpagamento;
 property idpedido : integer read fidpedido write fidpedido;
 property idplanilha : integer read fidplanilha write fidplanilha;
 property idusuario : integer read fidusuario write fidusuario;
 property idvendedor : integer read fidvendedor write fidvendedor;
 property numnota : integer read fnumnota write fnumnota;
 property outrasdespesas : double read foutrasdespesas write foutrasdespesas;
 property percomissao : double read fpercomissao write fpercomissao;
 property serie : string read fserie write fserie;
 property tipofrete : integer read ftipofrete write ftipofrete;
 property valfrete : double read fvalfrete write fvalfrete;
 property valtotbruto : double read fvaltotbruto write fvaltotbruto;
 property valtotdesconto : double read fvaltotdesconto write fvaltotdesconto;
 property valtotliquido : double read fvaltotliquido write fvaltotliquido;
end;

Tvendas_prod=class(TdObjects)
private
fidempresa : integer;
fidplanilha : integer;
fidproduto : integer;
fnumsequencia : integer;
fperdescprod : double;
fqtdproduto : double;
fvaldescprod : double;
fvaltotliquido : double;
fvalunitbruto : double;
public
constructor create; 
destructor destroy; override;
procedure clear;
published
 property idempresa : integer read fidempresa write fidempresa;
 property idplanilha : integer read fidplanilha write fidplanilha;
 property idproduto : integer read fidproduto write fidproduto;
 property numsequencia : integer read fnumsequencia write fnumsequencia;
 property perdescprod : double read fperdescprod write fperdescprod;
 property qtdproduto : double read fqtdproduto write fqtdproduto;
 property valdescprod : double read fvaldescprod write fvaldescprod;
 property valtotliquido : double read fvaltotliquido write fvaltotliquido;
 property valunitbruto : double read fvalunitbruto write fvalunitbruto;
end;

TEstoque = class(TPersistent)
private
    FVendas: TVendas;
public
 property Vendas : TVendas read FVendas;
 procedure Gravar; 
end;


implementation

constructor Tvendas.create;
begin
inherited;
clear;
  addPK (['idplanilha, idempresa']);
  Tablename := 'vendas';
end;
destructor Tvendas.destroy;
begin
inherited destroy;
end;
procedure Tvendas.clear;
begin
 fdatahorasaida  :=0;
 fdtemissao      :=0;
 fdtentrega      :=0;
 fidempresa      :=0;
 fidlocalentrega :=0;
 fidpagamento    :=0;
 fidpedido       :=0;
 fidplanilha     :=0;
 fidusuario      :=0;
 fidvendedor     :=0;
 fnumnota        :=0;
 foutrasdespesas :=0.0;
 fpercomissao    :=0.0;
 fserie          :='';
 ftipofrete      :=0;
 fvalfrete       :=0.0;
 fvaltotbruto    :=0.0;
 fvaltotdesconto :=0.0;
 fvaltotliquido  :=0.0;
end;

constructor Tvendas_prod.create;
begin
inherited;
clear;
  addPK (['idplanilha, idempresa, numsequencia']);
  Tablename := 'vendas';
end;
destructor Tvendas_prod.destroy;
begin
inherited destroy;
end;
procedure Tvendas_prod.clear;
begin
 fidempresa   :=0;
 fidplanilha  :=0;
 fidproduto   :=0;
 fnumsequencia:=0;
 fperdescprod :=0.0;
 fqtdproduto  :=0.0;
 fvaldescprod :=0.0;
 fvaltotliquido:=0.0;
 fvalunitbruto:=0.0;
end; 

{ TEstoque }

procedure TEstoque.Gravar;
var
 Script : string;
begin
 Script :=  FVendas.Itens.Script('UI');
 EnviaComando( Script, 'R', False );
end;

end.
 